<?php
function addmenu($name,$file,$title){
	$query="UPDATE environnement SET lastmod=NOW()";
	@rportalrequete($query) or rportalerreur($query,"?op=");
	$query="SELECT id FROM rportal_menu WHERE nom='$name'";
	$result = rportalrequete($query) or rportalerreur ("$query","?op=");
	if(rportalnbresult($result)==0){ 
		$query = "INSERT INTO rportal_menu (nom,titre,fichier) VALUES ('".$name."','".addslashes($title)."','".$file."')";
		$res=@rportalrequete($query) or rportalerreur ("$query","?op=");
		return rportallastid($res);
	}else{
		/**
		  * il s'agit d'une mise a jour, on efface le menu
		  */
		$m = rportalligne($result);
		$query="DELETE FROM rportal_menu_item WHERE id_menu='".$m['id']."'";
		@rportalrequete($query) or rportalerreur($query,"?op=");
		$query="DELETE FROM rportal_menu_droit WHERE id_menu='".$m['id']."'";
		@rportalrequete($query) or rportalerreur($query,"?op=");
		return $m['id'];
	}
}
function additem($menuid,$texte,$lien,$target,$ordre,$droit){
	$query = "INSERT INTO rportal_menu_item (id_menu,texte,lien,target,ordre) VALUES ('".$menuid."','".addslashes($texte)."','".$lien."','".$target."','".$ordre."')";
	$res=@rportalrequete($query) or rportalerreur ("$query","?op=");
	if(is_array($droit)){
		if(count($droit)>0){
			$itemid = rportallastid($res);
			for($i=0;$i<count($droit);$i++){
				$query = "INSERT INTO rportal_menu_droit (id_menu,id_item,fonction) VALUES ('".$menuid."','".$itemid."','".$droit[$i]."')";
				@rportalrequete($query) or rportalerreur ("$query","?op=");
			}
		}
	}
}
<bloc::menu>
/**
 * Menu {nom}
 */
$menuid = addmenu("{nom}","{fichier}","{titre}");
<bloc::item>$droit = array();
<bloc::droit>$droit[{id}] = "{fonction}";</bloc::droit>additem($menuid,"{texte}","{lien}","{target}","{ordre}",$droit);</bloc::item></bloc::menu>
?>